using Microsoft.Xna.Framework;

namespace HumanElement.Xna.Content.Effects
{
    public interface ISurfaceEffect : IEntity, IEffect
    {
        /// <summary>
        /// Gets or sets the world matrix.
        /// </summary>
        /// <value>The world matrix.</value>
        Matrix WorldMatrix { get; set; }

        /// <summary>
        /// Gets or sets the view matrix.
        /// </summary>
        /// <value>The view matrix.</value>
        Matrix ViewMatrix { get; set; }

        /// <summary>
        /// Gets or sets the projection matrix.
        /// </summary>
        /// <value>The projection matrix.</value>
        Matrix ProjectionMatrix { get; set; }

        /// <summary>
        /// Begins this instance.
        /// </summary>
        void Begin();

        /// <summary>
        /// Ends this instance.
        /// </summary>
        void End();
    }
}